tsearchrec.attr - windows XP

Otázka od: Vaclav Sazima

9. 9. 2002 18:29

 Ahoj,
narazil jsem na problem pri prochazeni direktorarove struktury pri
spusteni programu napsanem pro win9x spustenem pod windows xp (projevilo
se to take pri zkopirovani struktury z xp na 9x). tsearchrec.attr ma pro
direktorar a win9x hodnotu 16, ale pod winxp 48. Pokud jsem toto
zohlednil program zacal fungovat spravne. Zajimalo by me, zda se
onjevily jeste nejake podobne zaludnosti.

  Vaclav Sazima

Odpovedá: Jakub Dusek

9. 9. 2002 19:45

Atributy adresare jsou slozeny, zahrnuje se do toho i atribut archive,
hidden a tak. Proto to musis zjistovat takhle:

if (SearchRec.Attr and faDirectory <= 0) then

Jakub Dusek

-------------------------------------------
Homepage : http://dusek.webz.cz
Phone : +420604615795
Sms email : jakub.dusek@click.cz
ICQ: 86063232
Apps : Add/Remove Manager, Charmaper,
            Sms GateKeeper
-------------------------------------------

Monday, September 9, 2002, 2:05:00 PM, you wrote:

VS> Ahoj,
VS> narazil jsem na problem pri prochazeni direktorarove struktury pri
VS> spusteni programu napsanem pro win9x spustenem pod windows xp (projevilo
VS> se to take pri zkopirovani struktury z xp na 9x). tsearchrec.attr ma pro
VS> direktorar a win9x hodnotu 16, ale pod winxp 48. Pokud jsem toto
VS> zohlednil program zacal fungovat spravne. Zajimalo by me, zda se
VS> onjevily jeste nejake podobne zaludnosti.

VS> Vaclav Sazima

Odpovedá: Martin Schayna

9. 9. 2002 21:02

----- Original Message -----
From: "Vaclav Sazima" <vaclav.sazima@utilia.cz>
> narazil jsem na problem pri prochazeni direktorarove struktury pri
> spusteni programu napsanem pro win9x spustenem pod windows xp (projevilo
> se to take pri zkopirovani struktury z xp na 9x). tsearchrec.attr ma pro
> direktorar a win9x hodnotu 16, ale pod winxp 48. Pokud jsem toto
> zohlednil program zacal fungovat spravne. Zajimalo by me, zda se
> onjevily jeste nejake podobne zaludnosti.

To neni zadna zaludnost, ale zdokumentovana vlastnost:

48 = $30 = $10 + $20

$10 = FILE_ATTRIBUTE_DIRECTORY
$20 = FILE_ATTRIBUTE_ARCHIVE

Adresare a soubory mohou mit priznak "archive", coz teoreticky znamena
ze byly zmeneny od posledni zalohy. Nevim jestli se tento priznak v tomto
smyslu jeste pouziva, kdyz se zaroven zaznamenava datum a cas posledni
zmeny, ale je to ve WinAPI uz odjakziva. Pri testovani atributu musis priznak
"archive" odfiltrovat napr. takto:

  if Attr and FILE_ATTRIBUTE_DIRECTORY <> 0 then
    // je to adresar
    ...
Martin Schayna

Odpovedá: ing. Jan Fiala

11. 9. 2002 7:09

9.9.2002 Jakub Dusek:
> Atributy adresare jsou slozeny, zahrnuje se do toho i atribut archive,
> hidden a tak. Proto to musis zjistovat takhle:

> if (SearchRec.Attr and faDirectory <= 0) then

Zajimalo by me, jak se v tomto pripade dostanes na hodnotu mensi jak
nula  

--
ing. Jan Fiala
mailto:jan.fiala@iol.cz